<?php
/**
 * 内容系统数据连接库
 *
 * @package Appublisher
 * @subpackage Database
 * @author bluer
 * @version 0.3
 */

require_once('db.class.php');
require_once('HyperDB.class.php');
require_once('Builder.class.php');
require_once('Processor.class.php');


class CMSDB extends HyperDB {
    /**
     * 知识点权重信息数据表
     *
     */
    public $noteQuality = 'dp_note_quality';
    
    /**
     * 音频新闻数据表
     *
     */
    public $audioNews = 'dp_audio_news';
    
    /**
     * 砖题库真题表
     *
     */
    public $oZtkpapers = 'original_ztk_papers';
    
    /**
     * 原始题库数据库
     *
     */
    public $oZtkQuestions = 'original_ztk_questions';
    
    /**
     * 试卷-题目关系表
     *
     */
    public $paperQuestionR = 'relation_ztk_paper_question';
    
    /**
     * 时政信息数据表
     *
     */
    public $politics = 'data_politics';
    
    /**
     * 时政点评数据表
     *
     */
    public $politicsComment = 'data_politics_comment';
    
    /**
     * 考试项目信息数据表
     *
     */
    public $targetTest = 'data_target_test';
    
    /**
     * 资讯信息数据表
     *
     */
    public $concernedInfo = 'data_concerned_info';
    
    /**
     * WordPress Terms table
     *
     */
    public $terms = 'wp_terms';
    
    /**
     * WordPress Term Taxnomoy Table
     *
     */
    public $termTaxonomy = 'wp_term_taxonomy';
    
    /**
     * WordPress Term Relationships Table
     *
     */
    public $termRelations = 'wp_term_relationships';
    
    /**
     * WordPress Posts Table
     *
     */
    public $posts = 'wp_posts';
    
    /**
     * WordPress Options Table
     *
     */
    public $options = 'wp_options';
    
    /**
     * 错题反馈数据表
     *
     */
    public $errorQuestions = 'data_error_questions';
    
    /**
     * 考试项目表
     *
     */
    public $exams = 'data_exams';
    
    /**
     * 考试项目详情表
     *
     */
    public $examDetail = 'data_exam_detail';
    
    /**
     * 天天模考试卷
     *
     */
    public $testPaper = 'data_test_paper';

    /**
     * 题目做题信息统计表
     *
     */
    public $questionQuality = 'data_question_quality';

    /**
     * 题目-知识点关系表
     * @var string
     */
    public $questionNoteR = 'relation_question_note';

    /**
     * 知识点表
     *
     * @var string
     */
    public $notes = 'data_note_term';

    /**
     * 用户订单表
     * @var string
     */
    public $orders = 'original_orders';

    /**
     * 用户商品关系表
     * @var string
     */
    public $userProductR = 'relation_user_product';

    /**
     * 直播课表
     * @var string
     */
    public $liveCourses = 'data_live_course';

    /**
     * 订单邀请码表
     * @var string
     */
    public $orderInvites = 'order_invites';

    /**
     * 用户快递信息表
     * @var string
     */
    public $expressTasks = 'express_tasks';

    /**
     * 天天模考用户数据表
     *
     */
    public $qbUserData = 'qb_user_data';

    /**
     * 事业单位题目知识点关联表
     */
    public $insQueNoteR = 'institution_relation_note_question';

    /**
     * 具有分表的表名
     *
     * @var array
     */
    protected $multiTables = array();

    function __construct() {}
    
    /**
     * 结构化查询所对应的数据表
     *
     * @param string $name 表名
     * @return Builder
     */
    public function table($name = null) {
        $processor = new Processor();
        $query = new Builder($this, $processor);
        
        return $query->from($name);
    }

    /**
     * 设置使用了分表机制的基本表名
     *
     * @param array|string $tables
     */
    public function setMultiTables($tables) {
        if (is_string($tables)) {
            array_push($this->multiTables, $tables);
        } else if (is_array($tables)) {
            $this->multiTables = array_merge($this->multiTables, $tables);
        }
    }

    /**
     * 获取使用了分表机制的基本表名
     *
     * @return array
     */
    public function getMultiTables() {
        return $this->multiTables;
    }
}

$cmsdb = new CMSDB();

require( CONFIG_DIR . '/hyperdb.config.php' );
?>
